# -*- Mode: shell-script -*-
#############################################################################
##
#A  solvable.grp                GAP group library          Hans Ulrich Besche
##
##
#Y  Copyright (C) 2018-2021, Carnegie Mellon University
#Y  All rights reserved.  See LICENSE for details.
#Y  
#Y  This work is based on GAP version 3, with some files from version 4.  GAP is
#Y  Copyright (C) (1987--2021) by the GAP Group (www.gap-system.org).
##
##  This file contains the  extraction, selection and example  functions  and
##  the  data for the library  of  solvable groups  of  order less  100.  The
##  groups of order 64 are taken  from the list of M. Hall and J.  K. Senior,
##  published in New York 1964. The the groups of  order 96 are from R. Laue,
##  Aachen 1982 and all the other groups are from J.  Neubuesser, Kiel 1967.
##
##


#############################################################################
##
#T  AGTable[] . . . . . . . . . . .table of information about solvable groups
##
##  'AGTable' is a list of solvable groups of order up to 100. For each group
##  there is a list describing this group. The list has the following entries
##  <size>:       size of <G> ([2..100])
##  <name>:       if known, a descriptive name for <G>
##  <properties>: properties of <G>, written as 3 digit decimal number,
##                if <prop>/  100 mod 10 = 1 then <G> is abelian
##                if <prop>/   10 mod 10 = 1 then <G> is nilpotent
##                if <prop>       mod 10 = 1 then <G> is a nontrivial direct
##                           product
##  <indices>:    indices of the subnormal series used for the
##        ag-representation, if p is the maximum indice then the
##        indices are the (p+1)-adic digits of <indices>
##  <relations>:  a list of non canonical relations, where relations 
##        generator^index and trivial commutators are canonical.
##        a relation generators^index/element is represented by
##        (number of generator)*size+(number of element).
##        a relation Comm(gen1,gen2)/element is represented by
##        ((number of gen1)*(number of generators)+
##          (number of gen2)-1)*size+(number of element).
##        the number of an element is its position in the list of
##        elements -1.
##  Description of the used names:
##  n       is the cyclic group of order n, when used in construction
##  Cn      is even the cyclic group of order n, to avoid confusion
##  Dn      is the dihedral group of order n
##  Qn      is the quaternion group of order n
##  QDn     is the quasi-dihedral group of order n
##  Sn      is the symmetric group on n points
##  An      is the alternating group on n points
##  Sl, Gl  are the special linear and general linear groups
##  ^ $ : . + Y x the strongest binding is by ^ $ then follow : . + Y
##                and the  weakest is by x
##  G^n     is the direct product of n copies of X
##  G$H     is the wreath product of G and H
##  GxH     is the direct product of G and H
##  G:H     is the split extension of the normal subgroup G with the 
##      subgroup H of its automorphism group. There should be no
##      decomposition of G to IxJ so that G:H is equivalent to IxJ:H
##  G.H     is the non-split extension of the normal subgroup G with
##      the subgroup H of its automorphism group. There should be no
##      decomposition of G to IxJ so that G:H is equivalent to IxJ:H
##  e. g. 10.2 is the extension of a cyclic group of order 10 by
##      an automorphism of order 2, and the square of the automorphism
##      element is the element of order 2 in the 10.
##  e. g. (2x4).2 : the automorphism operates on the 4 and its square is
##      the 2.
##  e. g. (2^2x3).3 : the automorphism operates on the 2^2 as known
##      from A4 and its square is the 3.
##  e. g. (3^2x2).2 : the automorphism operates on the 3^2 by 
##      inverting and its square is the 2.
##  GYH     is the central amalgamated product of the groups G and H. The
##      order of the used central subgroup is evident from the orders
##      of GYH, G and H.
##  G+H     is the product with identical factorgroups of G and H. The
##      order of the used normal subgroups can be calulated by this of
##      G+H, G and H.
##  96.     this names are from the catalogue of Laue
##  grp_o_p the other groups are named with there order and position
AGTable := [
[ 2,     "c2",110,   2],
                 
[ 3,     "c3",110,   3],
                 
[ 4,    "2^2",111,   8],
[ 4,     "c4",110,   8,   5],
                 
[ 5,     "c5",110,   5],
                 
[ 6,     "c6",111,  11],
[ 6,     "S3",000,  11,  19],
                 
[ 7,     "c7",110,   7],
                 
[ 8,    "2^3",111,  26],
[ 8,    "4x2",111,  26,  10],
[ 8,     "c8",110,  26,  10,  17],
[ 8,     "D8",010,  26,  33],
[ 8,     "Q8",010,  26,   9,  17,  33],
                 
[ 9,    "3x3",111,  15],
[ 9,     "c9",110,  15,  10],
                 
[10,    "c10",111,  17],
[10,    "D10",000,  17,  33],
                 
[11,    "c11",110,  11],
                 
[12,    "6x2",111,  43],
[12,    "c12",111,  43,  15],
[12,    "D12",001,  43,  61],
[12,    "6.2",000,  43,  15,  61],
[12,     "A4",000,  58,  49,  63],
                 
[13,    "c13",110,  13],
                 
[14,    "c14",111,  23],
[14,    "D14",000,  23,  47],
                 
[15,    "c15",111,  23],
                 
[16,    "2^4",111,  80],
[16,  "2^2x4",111,  80,  49],
[16,    "8x2",111,  80,  34,  49],
[16,    "4x4",111,  80,  20,  49],
[16,    "c16",110,  80,  20,  34,  49],
[16,   "D8x2",011,  80,  33,  81],
[16,   "Q8x2",011,  80,  17,  33,  81],
[16,   "D8Y4",010,  80,  49,  81],
[16,         ,010,  80,  18,  81],
[16,"(2x4).2",010,  80,  18,  33,  81],
[16,         ,010,  80,  18,  49,  81],
[16,    "D16",010,  80,  35,  49,  82,  97],
[16,   "QD16",010,  80,  34,  49,  82,  97],
[16,    "Q16",010,  80,  17,  35,  49,  82,  97],
                 
[17,    "c17",110,  17],
                 
[18,    "6x3",111,  47],
[18,    "c18",111,  47,  37],
[18,    "D18",000,  47,  37,  77,  91],
[18,   "S3x3",001,  47,  91],
[18,  "3^2:2",000,  47,  75,  91],
                 
[19,    "c19",110,  19],
                 
[20,   "10x2",111,  89],
[20,    "c20",111,  89,  25],
[20,    "D20",001,  89, 103],
[20,   "10.2",000,  89,  25, 103],
[20,    "5:4",000,  89,  25, 101, 163],
                 
[21,    "c21",111,  31],
[21,    "7:3",000,  31,  64],
                 
[22,    "c22",111,  35],
[22,    "D22",000,  35,  75],
                 
[23,    "c23",110,  23],
                 
[24,  "2^3x3",111, 171],
[24,   "12x2",111, 171,  51],
[24,    "c24",111, 171,  30,  51],
[24,   "D8x3",011, 174,  49, 121],
[24,   "Q8x3",011, 174,  25,  49, 121],
[24, "S3x2^2",001, 186, 124],
[24,   "S3x4",001, 186,  73, 124],
[24,  "2x6.2",001, 186,  25, 124],
[24,   "12.2",000, 186,  26,  73, 124],
[24,   "A4x2",001, 234, 122, 150],
[24,         ,000, 174, 121, 146],
[24,    "D24",000, 174,  49, 121, 146],
[24,  "Q8+S3",000, 174,  25,  49, 121, 146],
[24,"Sl(2,3)",000, 234,  49,  73, 123, 151, 241],
[24,     "S4",000, 186, 124, 147, 171, 241, 267],
                 
[25,    "5x5",111,  35],
[25,    "c25",110,  35,  26],
                 
[26,    "c26",111,  41],
[26,    "D26",000,  41,  89],
                 
[27,    "3^3",111,  63],
[27,    "9x3",111,  63,  30],
[27,    "c27",110,  63,  30,  55],
[27,  "3^2:3",010,  63, 109],
[27,    "9:3",010,  63,  28,  55, 109],
                 
[28,   "14x2",111, 151],
[28,    "c28",111, 151,  35],
[28,    "D28",001, 151, 145],
[28,   "14.2",000, 151,  35, 145],
                 
[29,    "c29",110,  29],
                 
[30,    "c30",111,  95],
[30,  "D10x3",001,  95, 153],
[30,   "S3x5",001,  95, 125],
[30,    "D30",000,  95, 125, 153],
                 
[31,    "c31",110,  31],
                 
[32,    "2^5",111, 242],
[32,  "2^3x4",111, 242, 129],
[32,  "2^2x8",111, 242,  98, 129],
[32,  "4^2x2",111, 242,  68, 129],
[32,   "16x2",111, 242,  68,  98, 129],
[32,    "8x4",111, 242,  40,  98, 129],
[32,    "c32",110, 242,  40,  68,  98, 129],
[32, "D8x2^2",011, 242,  65, 193],
[32, "Q8x2^2",011, 242,  33,  65, 193],
[32, "D8Y4x2",011, 242, 129, 193],
[32,         ,011, 242,  34, 193],
[32,"2x(2x4).2",011, 242,  34,  65, 193],
[32,         ,011, 242,  34, 129, 193],
[32,   "D8x4",011, 242,  65,  98, 193],
[32,   "Q8x4",011, 242,  33,  65,  98, 193],
[32,         ,010, 242,  36, 129, 193],
[32,   "D8Y8",010, 242,  98, 129, 193],
[32,         ,010, 242,  36,  66, 193],
[32,         ,010, 242,  34,  68, 129, 193],
[32,         ,010, 242,  36,  98, 193],
[32,   "8+Q8",010, 242,  36,  65,  98, 193],
[32,         ,010, 242,  36,  98, 129, 193],
[32,  "D16x2",011, 242,  69,  97, 196, 225],
[32, "QD16x2",011, 242,  68,  97, 196, 225],
[32,  "Q16x2",011, 242,  33,  69,  97, 196, 225],
[32,  "D16Y4",010, 242,  69,  97, 129, 196, 225],
[32,         ,010, 242,  71,  97, 196, 225],
[32,         ,010, 242,  33,  71,  97, 196, 225],
[32,         ,010, 242,  34,  69,  97, 196, 225],
[32,         ,010, 242,  34,  68,  97, 196, 225],
[32,         ,010, 242,  71,  97, 129, 196, 225],
[32,         ,010, 242,  34,  69,  97, 129, 196, 225],
[32,         ,010, 242, 194, 225],
[32,         ,010, 242,  66,  97, 194, 225],
[32,  "Q8+Q8",010, 242,  33,  66,  97, 194, 225],
[32,         ,010, 242,  97, 194, 225],
[32,         ,010, 242,  33,  97, 194, 225],
[32,         ,010, 242,  65, 194, 225],
[32,         ,010, 242,  67,  97, 194, 225],
[32,         ,010, 242,  34,  67,  97, 194, 225],
[32,         ,010, 242,  67,  98, 194, 225],
[32,  "D8YD8",010, 242,  33,  65,  97, 129, 257, 385],
[32,  "D8YQ8",010, 242,  65,  97, 129, 257, 385],
[32,         ,010, 242,  67, 129, 194, 257, 385],
[32,         ,010, 242,  33,  67, 129, 194, 257, 385],
[32,         ,010, 242,  36, 194, 257, 385],
[32,         ,010, 242,  36,  97, 194, 257, 385],
[32,         ,010, 242,  36,  65,  97, 194, 257, 385],
[32,    "D32",010, 242,  70,  99, 129, 196, 226, 257],
[32,   "QD32",010, 242,  71,  99, 129, 196, 226, 257],
[32,    "Q32",010, 242,  33,  70,  99, 129, 196, 226, 257],
                 
[33,    "c33",111,  47],
                 
[34,    "c34",111,  53],
[34,    "D34",000,  53, 117],
                 
[35,    "c35",111,  47],
                 
[36,    "6x6",111, 175],
[36,   "18x2",111, 175, 109],
[36,   "12x3",111, 175,  45],
[36,    "c36",111, 175,  45, 109],
[36,   "6xS3",001, 187, 109, 186],
[36,  "3x6.2",001, 187,  39, 109, 186],
[36,   "A4x3",001, 235, 183, 225],
[36,"(2^2x3).3",000, 235,  37, 183, 225],
[36,"2x3^2:2",001, 190, 186, 218],
[36,"(3^2x2).2",000, 190,  37, 186, 218],
[36,    "D36",001, 190,  74, 190, 218],
[36,   "18.2",000, 190,  37,  74, 190, 218],
[36,   "S3^2",001, 175, 219, 397],
[36,  "3^2:4",000, 175,  45, 224, 257, 363, 397],
                 
[37,    "c37",110,  37],
                 
[38,    "c38",111,  59],
[38,    "D38",000,  59, 131],
                 
[39,    "c39",111,  55],
[39,   "13:3",000,  55, 119],
                 
[40,  "2^3x5",111, 521],
[40,   "2x20",111, 521,  85],
[40,    "c40",111, 521,  50,  85],
[40,   "D8x5",011, 536,  81, 201],
[40,   "Q8x5",011, 536,  41,  81, 201],
[40,  "2xD20",001, 626, 212],
[40,  "4xD10",001, 626, 121, 212],
[40, "2x10.2",001, 626,  41, 212],
[40,   "20.2",000, 626,  42, 121, 212],
[40,  "2x5:4",001, 536,  50, 242, 406],
[40,   "10.4",000, 536,  50,  81, 242, 406],
[40,         ,000, 536, 201, 246],
[40,    "D40",000, 536,  81, 201, 246],
[40, "Q8+D10",000, 536,  41,  81, 201, 246],
                 
[41,    "c41",110,  41],
                 
[42,    "c42",111, 159],
[42,  "D14x3",001, 159, 215],
[42,  "7:3x2",001, 159, 337],
[42,   "S3x7",001, 159, 175],
[42,    "7:6",000, 159, 215, 337],
[42,    "D42",000, 159, 175, 215],
                 
[43,    "c43",110,  43],
                 
[44, "2^2x11",111, 323],
[44,    "c44",111, 323,  55],
[44,    "D44",001, 323, 229],
[44,   "22.2",000, 323,  55, 229],
                 
[45,  "3^2x5",111, 131],
[45,    "c45",111, 131,  50],
                 
[46,    "c46",111,  71],
[46,    "D46",000,  71, 159],
                 
[47,    "c47",110,  47],
                 
[48,  "2^4x3",111, 683],
[48, "2^2x12",111, 683, 147],
[48,   "24x2",111, 683, 102, 147],
[48,  "4^2x3",111, 683,  60, 147],
[48,    "c48",111, 683,  60, 102, 147],
[48,   "6xD8",011, 683,  99, 291],
[48,   "6xQ8",011, 683,  51,  99, 291],
[48, "3xD8Y4",011, 683, 147, 291],
[48,         ,011, 683,  54, 291],
[48,"3x(2x4).2",011, 683,  54,  99, 291],
[48,         ,011, 683,  54, 147, 291],
[48,  "3xD16",011, 683, 105, 147, 294, 339],
[48, "3xQD16",011, 683, 102, 147, 294, 339],
[48,  "3xQ16",011, 683,  51, 105, 147, 294, 339],
[48, "2^3xS3",001, 746, 296],
[48, "2x4xS3",001, 746, 193, 296],
[48,"2^2x6.2",001, 746,  49, 296],
[48,  "4x6.2",001, 746,  52, 193, 296],
[48,   "8xS3",001, 746, 146, 193, 296],
[48, "2x12.2",001, 746,  50, 193, 296],
[48,   "24.2",000, 746,  52, 146, 193, 296],
[48, "2^2xA4",001, 938, 292, 348],
[48,   "4xA4",001, 938, 193, 292, 348],
[48,         ,001, 698, 289, 340],
[48,  "2xD24",001, 698,  97, 289, 340],
[48,"2xQ8+S3",001, 698,  49,  97, 289, 340],
[48,         ,000, 698,  50, 289, 340],
[48,         ,000, 698,  98, 289, 340],
[48,         ,000, 698,  49,  98, 289, 340],
[48,         ,000, 698,  50,  97, 289, 340],
[48,         ,000, 698, 193, 289, 340],
[48,         ,000, 698,  50, 193, 289, 340],
[48,         ,000, 698,  98, 193, 289, 340],
[48,"Sl(2,3)x2",001, 938,  97, 145, 293, 349, 577],
[48,         ,000, 938,  97, 145, 193, 293, 349, 577],
[48,   "2xS4",001, 746, 296, 342, 390, 578, 630],
[48,   "4+S4",000, 746,  49, 296, 342, 390, 578, 630],
[48,  "D8xS3",001, 746, 193, 296, 865],
[48,  "Q8xS3",001, 746, 145, 193, 296, 865],
[48,"(6.2)YD8",000, 746,  49, 193, 296, 865],
[48,"(6.2)YQ8",000, 746,  49, 145, 193, 296, 865],
[48,    "D48",000, 686, 103, 145, 294, 337, 386],
[48,         ,000, 686, 102, 145, 294, 337, 386],
[48,         ,000, 686,  49, 103, 145, 294, 337, 386],
[48,         ,000, 686, 103, 145, 294, 337, 626],
[48,         ,000, 686, 102, 145, 294, 337, 626],
[48,         ,000, 686,  49, 102, 145, 294, 337, 626],
[48,         ,000, 686,  49, 103, 145, 294, 337, 626],
[48,"Gl(2,3)",000, 746, 145, 193, 296, 343, 390, 579, 631, 865],
[48,         ,000, 746,  49, 145, 193, 296, 343, 390, 579, 631, 865],
[48,  "A4+A4",000, 938, 292, 348, 385, 435],
[48,         ,000, 938, 100, 193, 295, 337, 395, 437],
                 
[49,    "7x7",111,  63],
[49,    "c49",110,  63,  50],
                 
[50,   "10x5",111, 107],
[50,    "c50",111, 107, 101],
[50,    "D50",000, 107, 101, 219, 253],
[50,  "D10x5",001, 107, 253],
[50,  "5^2:2",000, 107, 215, 253],
                 
[51,    "c51",111,  71],
                 
[52, "2^2x13",111, 433],
[52,    "c52",111, 433,  65],
[52,    "D52",001, 433, 271],
[52,   "26.2",000, 433,  65, 271],
[52,   "13:4",000, 433,  65, 267, 427],
                 
[53,    "c53",110,  53],
                 
[54,  "3^3x2",111, 191],
[54,    "9x6",111, 191, 163],
[54,    "c54",111, 191, 111, 163],
[54,"3^2:3x2",011, 251, 271],
[54,  "9:3x2",011, 251,  55, 271],
[54, "3^2xS3",001, 191, 279],
[54,   "9xS3",001, 191, 163, 279],
[54,"3x3^2:2",001, 191, 279, 327],
[54,  "3xD18",001, 191, 111, 285, 327],
[54,"(3^2:3):2",000, 191, 279, 327, 541],
[54,  "3^2:6",000, 191, 327, 379, 541],
[54,    "9:6",000, 191, 109, 281, 379, 541],
[54,  "3^3:2",000, 191, 279, 327, 379],
[54,"(3x9):2",000, 191, 163, 279, 329, 379],
[54,    "D54",000, 191, 111, 163, 287, 329, 379],
                 
[55,    "c55",111,  71],
[55,   "11:5",000,  71, 168],
                 
[56,  "2^3x7",111,1175],
[56,   "2x28",111,1175, 119],
[56,    "c56",111,1175,  70, 119],
[56,   "7xD8",011,1210, 113, 281],
[56,   "7xQ8",011,1210,  57, 113, 281],
[56,  "2xD28",001,1490, 300],
[56,  "4xD14",001,1490, 169, 300],
[56, "2x14.2",001,1490,  57, 300],
[56,   "28.2",000,1490,  58, 169, 300],
[56,         ,000,1210, 281, 346],
[56,    "D56",000,1210, 113, 281, 346],
[56, "Q8+D14",000,1210,  57, 113, 281, 346],
[56,  "2^3:7",000,3730, 287, 342, 395],
                 
[57,    "c57",111,  79],
[57,   "19:3",000,  79, 177],
                 
[58,    "c58",111,  89],
[58,    "D58",000,  89, 201],
                 
[59,    "c59",110,  59],
                 
[60, "2^2x15",111, 527],
[60,    "c60",111, 527,  75],
[60,  "10xS3",001, 572, 310],
[60,  "5x3:4",001, 572,  61, 310],
[60,   "5xA4",001, 737, 305, 375],
[60,  "6xD10",001, 632, 318],
[60, "3x10.2",001, 632,  61, 318],
[60,  "3x5:4",001, 537,  75, 363, 609],
[60,    "D60",001, 572, 310, 366],
[60,   "30.2",000, 572,  61, 310, 366],
[60, "S3xD10",001, 527, 423, 605, 663],
[60,"S3+(5:4)",000, 527,  75, 365, 421, 663],
                 
[61,    "c61",110,  61],
                 
[62,    "c62",111,  95],
[62,    "D62",000,  95, 215],
                 
[63,   "21x3",111, 223],
[63,    "c63",111, 223,  70],
[63,  "7:3x3",001, 223, 316],
[63,   "21.3",000, 223,  70, 316],

[64,    "2^6",111, 728],
[64,  "2^4x4",111, 728, 321],
[64,  "2^3x8",111, 728, 258, 321],
[64,"4^2x2^2",111, 728, 196, 321],
[64, "2^2x16",111, 728, 196, 258, 321],
[64,  "2x4x8",111, 728, 136, 258, 321],
[64,   "2x32",111, 728, 136, 196, 258, 321],
[64,    "4^3",111, 728,  80, 196, 321],
[64,   "4x16",111, 728,  80, 196, 258, 321],
[64,    "8^2",111, 728,  80, 136, 258, 321],
[64,    "c64",110, 728,  80, 136, 196, 258, 321],
[64, "2^3xD8",011, 728, 129, 449],
[64, "2^3xQ8",011, 728,  65, 129, 449],
[64,"2^2xD8Y4",011, 728, 321, 449],
[64,         ,011, 728,  66, 449],
[64,         ,011, 728,  66, 129, 449],
[64,         ,011, 728,  66, 321, 449],
[64, "2x4xD8",011, 728, 129, 258, 449],
[64,         ,011, 728,  65, 129, 258, 449],
[64,         ,011, 728,  68, 321, 449],
[64,         ,011, 728, 258, 321, 449],
[64,         ,011, 728,  68, 130, 449],
[64,         ,011, 728,  66, 132, 321, 449],
[64,         ,011, 728,  68, 258, 449],
[64,         ,011, 728,  68, 129, 258, 449],
[64,         ,011, 728,  68, 258, 321, 449],
[64, "4xD8Y4",011, 728, 196, 321, 449],
[64,         ,011, 728,  72, 258, 449],
[64,         ,011, 728,  72, 129, 258, 449],
[64,         ,010, 728,  72, 132, 321, 449],
[64,         ,011, 728,  66, 196, 321, 449],
[64,         ,010, 728,  72, 258, 321, 449],
[64,         ,010, 728,  72, 196, 321, 449],
[64,   "8xD8",011, 728, 129, 196, 258, 449],
[64,   "8xQ8",011, 728,  65, 129, 196, 258, 449],
[64,  "16YD8",010, 728, 196, 258, 321, 449],
[64,         ,010, 728,  68, 136, 258, 449],
[64,         ,010, 728,  72, 130, 196, 321, 449],
[64,         ,010, 728,  68, 136, 258, 321, 449],
[64,         ,010, 728,  72, 196, 258, 449],
[64,         ,010, 728,  72, 129, 196, 258, 449],
[64,         ,010, 728,  72, 196, 258, 321, 449],
[64,"2^2xD16",011, 728, 137, 193, 456, 513],
[64,"2^2xQD16",011, 728, 136, 193, 456, 513],
[64,"2^2xQ16",011, 728,  65, 137, 193, 456, 513],
[64,"2xD16Y4",011, 728, 137, 193, 321, 456, 513],
[64,         ,011, 728, 139, 193, 456, 513],
[64,         ,011, 728,  65, 139, 193, 456, 513],
[64,         ,011, 728,  66, 137, 193, 456, 513],
[64,         ,011, 728,  66, 136, 193, 456, 513],
[64,         ,011, 728, 139, 193, 321, 456, 513],
[64,         ,011, 728,  66, 137, 193, 321, 456, 513],
[64,         ,010, 728, 141, 193, 321, 456, 513],
[64,         ,010, 728,  68, 137, 193, 321, 456, 513],
[64,  "4xD16",011, 728, 137, 193, 258, 456, 513],
[64, "4xQD16",011, 728, 136, 193, 258, 456, 513],
[64,  "4xQ16",011, 728,  65, 137, 193, 258, 456, 513],
[64,  "8YD16",010, 728, 137, 193, 258, 321, 456, 513],
[64,         ,010, 728,  68, 139, 193, 456, 513],
[64,         ,010, 728,  68, 139, 193, 321, 456, 513],
[64,         ,010, 728,  66, 141, 193, 321, 456, 513],
[64,         ,010, 728, 141, 193, 258, 456, 513],
[64,         ,010, 728,  65, 141, 193, 258, 456, 513],
[64,         ,010, 728,  68, 137, 193, 258, 456, 513],
[64,         ,010, 728,  68, 136, 193, 258, 456, 513],
[64,         ,010, 728, 141, 193, 258, 321, 456, 513],
[64,         ,010, 728,  68, 137, 193, 258, 321, 456, 513],
[64,         ,011, 728, 450, 513],
[64,         ,011, 728, 130, 193, 450, 513],
[64,"2xQ8+Q8",011, 728,  65, 130, 193, 450, 513],
[64,         ,011, 728, 193, 450, 513],
[64,         ,011, 728,  65, 193, 450, 513],
[64,         ,011, 728, 129, 450, 513],
[64,         ,011, 728, 131, 193, 450, 513],
[64,         ,011, 728,  66, 131, 193, 450, 513],
[64,         ,011, 728, 131, 194, 450, 513],
[64,         ,010, 728, 193, 257, 450, 513],
[64,         ,010, 728, 130, 257, 450, 513],
[64,         ,010, 728,  66, 130, 257, 450, 513],
[64,         ,010, 728, 194, 257, 450, 513],
[64,         ,010, 728,  68, 450, 513],
[64,         ,010, 728,  68, 130, 193, 450, 513],
[64,         ,010, 728,  68, 193, 450, 513],
[64,         ,010, 728, 134, 450, 513],
[64,         ,010, 728, 132, 193, 450, 513],
[64,         ,010, 728,  66, 134, 450, 513],
[64,         ,010, 728,  65, 132, 193, 450, 513],
[64,         ,010, 728,  66, 132, 193, 450, 513],
[64,         ,010, 728,  68, 129, 450, 513],
[64,         ,010, 728,  68, 131, 193, 450, 513],
[64,         ,010, 728, 132, 194, 450, 513],
[64,         ,010, 728,  65, 132, 194, 450, 513],
[64,         ,010, 728,  68, 131, 194, 450, 513],
[64,         ,010, 728,  68, 193, 257, 450, 513],
[64,         ,010, 728,  68, 130, 257, 450, 513],
[64,         ,010, 728, 132, 257, 450, 513],
[64,         ,010, 728,  66, 132, 257, 450, 513],
[64,         ,010, 728,  68, 194, 257, 450, 513],
[64,         ,010, 728, 197, 257, 450, 513],
[64,         ,010, 728, 130, 196, 257, 450, 513],
[64,         ,010, 728,  66, 130, 196, 257, 450, 513],
[64,         ,010, 728, 132, 194, 257, 450, 513],
[64,"2xD8YD8",011, 728,  65, 129, 193, 257, 577, 897],
[64,"2xD8YQ8",011, 728, 129, 193, 257, 577, 897],
[64,         ,010, 728, 321, 577, 897],
[64,         ,010, 728,  66, 193, 577, 897],
[64,         ,010, 728,  66, 129, 193, 257, 577, 897],
[64,         ,010, 728,  66, 129, 193, 577, 897],
[64,         ,010, 728,  66, 321, 577, 897],
[64,         ,011, 728, 133, 257, 452, 577, 897],
[64,         ,011, 728,  65, 133, 257, 452, 577, 897],
[64,         ,010, 728, 133, 257, 321, 452, 577, 897],
[64,         ,010, 728, 135, 257, 452, 577, 897],
[64,         ,010, 728,  65, 135, 193, 257, 452, 577, 897],
[64,         ,010, 728,  65, 135, 257, 452, 577, 897],
[64,         ,010, 728,  66, 133, 257, 452, 577, 897],
[64,         ,010, 728, 133, 194, 257, 452, 577, 897],
[64,         ,010, 728, 132, 194, 257, 452, 577, 897],
[64,         ,010, 728,  65, 133, 194, 257, 452, 577, 897],
[64,         ,010, 728, 135, 257, 321, 452, 577, 897],
[64,         ,010, 728,  66, 133, 257, 321, 452, 577, 897],
[64,         ,010, 728, 133, 194, 257, 321, 452, 577, 897],
[64,         ,011, 728,  72, 452, 577, 897],
[64,         ,011, 728,  72, 193, 452, 577, 897],
[64,         ,011, 728,  72, 129, 193, 452, 577, 897],
[64,         ,010, 728,  72, 321, 452, 577, 897],
[64,         ,010, 728,  72, 193, 321, 452, 577, 897],
[64,         ,010, 728,  72, 130, 452, 577, 897],
[64,         ,010, 728,  72, 130, 193, 452, 577, 897],
[64,         ,010, 728,  72, 130, 321, 452, 577, 897],
[64,         ,010, 728,  72, 194, 452, 577, 897],
[64,         ,010, 728,  72, 129, 194, 452, 577, 897],
[64,         ,010, 728,  72, 194, 321, 452, 577, 897],
[64,  "2xD32",011, 728, 140, 197, 257, 456, 516, 577],
[64, "2xQD32",011, 728, 141, 197, 257, 456, 516, 577],
[64,  "2xQ32",011, 728,  65, 140, 197, 257, 456, 516, 577],
[64,         ,010, 728, 140, 197, 257, 321, 456, 516, 577],
[64,         ,010, 728, 142, 197, 257, 456, 516, 577],
[64,         ,010, 728,  65, 142, 197, 257, 456, 516, 577],
[64,         ,010, 728,  66, 140, 197, 257, 456, 516, 577],
[64,         ,010, 728,  66, 141, 197, 257, 456, 516, 577],
[64,         ,010, 728, 142, 197, 257, 321, 456, 516, 577],
[64,         ,010, 728,  66, 140, 197, 257, 321, 456, 516, 577],
[64,         ,010, 728, 452, 514, 897],
[64,         ,010, 728,  70, 129, 193, 452, 514, 897],
[64,         ,010, 728,  70, 452, 514, 897],
[64,         ,010, 728, 129, 193, 452, 514, 897],
[64,         ,010, 728, 133, 195, 452, 514, 897],
[64,         ,010, 728,  68, 133, 194, 452, 514, 897],
[64,         ,010, 728,  66, 132, 193, 452, 514, 897],
[64,         ,010, 728,  65, 130, 452, 514, 897],
[64,         ,010, 728,  65, 134, 194, 452, 514, 897],
[64,         ,010, 728,  67, 134, 197, 452, 514, 897],
[64,  "D8xD8",011, 728, 130, 257, 450,1345],
[64,  "D8xQ8",011, 728, 130, 193, 257, 450,1345],
[64,  "Q8xQ8",011, 728,  66, 130, 193, 257, 450,1345],
[64,         ,010, 728,  65, 257, 450,1345],
[64,         ,010, 728,  65, 130, 193, 257, 450,1345],
[64,         ,010, 728,  65, 193, 257, 450,1345],
[64,         ,010, 728,  65, 130, 257, 450,1345],
[64,         ,010, 728,  67, 130, 257, 450,1345],
[64,         ,010, 728,  67, 130, 193, 257, 450,1345],
[64,         ,010, 728,  65, 194, 450,1345],
[64,         ,010, 728,  65, 195, 257, 450,1345],
[64,         ,010, 728,  67, 130, 195, 257, 450,1345],
[64,         ,010, 728,  65, 130, 194, 257, 450,1345],
[64,         ,010, 728,  65, 194, 257, 450,1345],
[64,         ,010, 728,  65, 130, 195, 257, 450,1345],
[64,         ,010, 728, 130, 450, 577, 897],
[64,         ,010, 728, 193, 450, 577, 897],
[64,         ,010, 728, 130, 193, 450, 577, 897],
[64,         ,010, 728, 129, 193, 450, 577, 897],
[64,         ,010, 728,  66, 130, 450, 577, 897],
[64,         ,010, 728,  66, 130, 193, 450, 577, 897],
[64,         ,010, 728, 194, 450, 577, 897],
[64,         ,010, 728,  66, 194, 257, 450, 577, 897],
[64,         ,010, 728, 129, 194, 450, 577, 897],
[64,         ,010, 728, 194, 257, 450, 577, 897],
[64,         ,010, 728,  67, 194, 257, 450, 577, 897],
[64,         ,010, 728,  72, 132, 257, 321, 450, 577, 897],
[64,         ,010, 728,  72, 132, 193, 257, 321, 450, 577, 897],
[64,         ,010, 728,  72, 132, 194, 321, 450, 577, 897],
[64,         ,010, 728, 194, 257, 514, 579, 899, 961],
[64,         ,010, 728, 195, 257, 514, 579, 899, 961],
[64,         ,010, 728, 131, 194, 257, 514, 579, 899, 961],
[64,         ,010, 728,  65, 194, 257, 514, 579, 899, 961],
[64,         ,010, 728,  67, 130, 194, 257, 514, 579, 899, 961],
[64,         ,010, 728, 133, 194, 257, 452, 514, 577],
[64,         ,010, 728, 132, 194, 257, 452, 514, 577],
[64,         ,010, 728,  66, 133, 194, 257, 452, 514, 577],
[64,         ,010, 728,  66, 132, 194, 257, 452, 514, 577],
[64,         ,010, 728,  65, 133, 194, 257, 452, 514, 577],
[64,         ,010, 728, 135, 194, 257, 452, 514, 577],
[64,         ,010, 728,  65, 135, 194, 257, 452, 514, 577],
[64,         ,010, 728, 133, 257, 452, 514, 577],
[64,         ,010, 728, 132, 257, 452, 514, 577],
[64,         ,010, 728,  65, 133, 257, 452, 514, 577],
[64,         ,010, 728, 133, 195, 257, 452, 514, 577],
[64,         ,010, 728,  66, 133, 195, 257, 452, 514, 577],
[64,         ,010, 728, 135, 195, 257, 452, 514, 577],
[64,         ,010, 728, 133, 257, 452, 577, 898],
[64,         ,010, 728, 132, 257, 452, 577, 898],
[64,         ,010, 728,  65, 132, 257, 452, 577, 898],
[64,         ,010, 728,  65, 133, 257, 452, 577, 898],
[64,         ,010, 728, 133, 194, 257, 452, 577, 898],
[64,         ,010, 728,  65, 132, 194, 257, 452, 577, 898],
[64,         ,010, 728, 135, 194, 257, 452, 577, 898],
[64,         ,010, 728, 132, 194, 257, 452, 577, 898],
[64,         ,010, 728, 134, 194, 257, 452, 577, 898],
[64,         ,010, 728,  65, 134, 194, 257, 452, 577, 898],
[64,         ,010, 728,  65, 133, 194, 257, 452, 577, 898],
[64,         ,010, 728,  65, 135, 194, 257, 452, 577, 898],
[64,         ,010, 728,  66, 133, 257, 452, 577, 898],
[64,         ,010, 728,  67, 132, 257, 452, 577, 898],
[64,         ,010, 728,  66, 132, 257, 452, 577, 898],
[64,         ,010, 728,  67, 133, 257, 452, 577, 898],
[64,         ,010, 728, 133, 193, 257, 452, 577, 898],
[64,         ,010, 728,  65, 133, 193, 257, 452, 577, 898],
[64,         ,010, 728, 133, 195, 257, 452, 577, 898],
[64,         ,010, 728,  65, 133, 195, 257, 452, 577, 898],
[64,         ,010, 728, 135, 195, 257, 452, 577, 898],
[64,         ,010, 728,  65, 135, 195, 257, 452, 577, 898],
[64,         ,010, 728,  67, 133, 193, 257, 452, 577, 898],
[64,         ,010, 728,  66, 133, 193, 257, 452, 577, 898],
[64,         ,010, 728, 133, 194, 257, 452, 514, 577, 897],
[64,         ,010, 728,  65, 133, 194, 257, 452, 514, 577, 897],
[64,         ,010, 728,  66, 133, 194, 257, 452, 514, 577, 897],
[64,         ,010, 728, 133, 257, 452, 514, 577, 897],
[64,         ,010, 728,  66, 133, 257, 452, 514, 577, 897],
[64,         ,010, 728,  65, 133, 257, 452, 514, 577, 897],
[64,         ,010, 728, 135, 194, 257, 452, 514, 577, 897],
[64,         ,010, 728,  66, 135, 194, 257, 452, 514, 577, 897],
[64,         ,010, 728,  65, 135, 194, 257, 452, 514, 577, 897],
[64,         ,010, 728,  72, 194, 257, 452, 579, 898, 961],
[64,         ,010, 728,  72, 130, 194, 257, 452, 579, 898, 961],
[64,         ,010, 728,  72, 129, 194, 257, 452, 579, 898, 961],
[64,         ,010, 728,  72, 257, 452, 579, 898, 961],
[64,         ,010, 728,  72, 129, 257, 452, 579, 898, 961],
[64,         ,010, 728,  72, 195, 257, 452, 579, 898, 961],
[64,         ,010, 728,  72, 130, 195, 257, 452, 579, 898, 961],
[64, "D8YD16",010, 728,  65, 129, 193, 259, 321, 578, 641, 897],
[64,"D8YQD16",010, 728, 129, 193, 258, 321, 578, 641, 897],
[64, "Q8YD16",010, 728, 129, 193, 259, 321, 578, 641, 897],
[64,         ,010, 728, 134, 259, 321, 452, 578, 641, 897],
[64,         ,010, 728,  65, 134, 259, 321, 452, 578, 641, 897],
[64,         ,010, 728,  72, 132, 258, 321, 452, 578, 641, 897],
[64,         ,010, 728, 136, 195, 259, 321, 452, 514, 578, 641, 961],
[64,         ,010, 728, 136, 194, 259, 321, 452, 514, 578, 641, 961],
[64,         ,010, 728,  65, 136, 195, 259, 321, 452, 514, 578, 641, 961],
[64,         ,010, 728,  80, 516, 578, 641, 898, 961],
[64,         ,010, 728,  80, 193, 516, 578, 641, 898, 961],
[64,         ,010, 728,  80, 194, 257, 518, 578, 641, 898, 961],
[64,         ,010, 728,  80, 195, 257, 518, 578, 641, 898, 961],
[64,         ,010, 728,  80, 129, 195, 257, 518, 578, 641, 898, 961],
[64,         ,010, 728,  80, 129, 194, 257, 518, 578, 641, 898, 961],
[64,         ,010, 728,  69, 129, 195, 257, 321, 452, 514, 641, 961],
[64,         ,010, 728,  68, 129, 194, 257, 321, 452, 514, 641, 961],
[64,         ,010, 728,  68, 129, 195, 257, 321, 452, 514, 641, 961],
[64,         ,010, 728, 516, 641, 898, 961],
[64,         ,010, 728, 193, 516, 641, 898, 961],
[64,         ,010, 728, 194, 257, 518, 641, 898, 961],
[64,         ,010, 728, 195, 257, 518, 641, 898, 961],
[64,         ,010, 728, 129, 195, 257, 518, 641, 898, 961],
[64,         ,010, 728, 129, 194, 257, 518, 641, 898, 961],
[64,         ,010, 728, 140, 198, 259, 321, 456, 516, 578, 641],
[64,         ,010, 728, 141, 198, 259, 321, 456, 516, 578, 641],
[64,         ,010, 728,  65, 140, 198, 259, 321, 456, 516, 578, 641],
                 
[65,    "c65",111,  83],
                 
[66,    "c66",111, 335],
[66,  "D22x3",001, 335, 339],
[66,  "S3x11",001, 335, 275],
[66,    "D66",000, 335, 275, 339],
                 
[67,    "c67",110,  67],
                 
[68,   "34x2",111, 701],
[68,    "c68",111, 701,  85],
[68,    "D68",001, 701, 355],
[68,   "34.2",000, 701,  85, 355],
[68,   "17:4",000, 701,  85, 352, 559],
                 
[69,    "c69",111,  95],
                 
[70,    "c70",111, 175],
[70,  "D14x5",001, 175, 355],
[70,  "D10x7",001, 175, 301],
[70,    "D70",000, 175, 301, 355],
                 
[71,    "c71",110,  71],
                 
[72,"2^3x3^2",111, 687],
[72,  "2^3x9",111, 687, 289],
[72,"2x4x3^2",111, 687, 153],
[72,  "2x4x9",111, 687, 153, 289],
[72,  "8x3^2",111, 687,  90, 153],
[72,    "c72",111, 687,  90, 153, 289],
[72, "3^2xD8",011, 702, 145, 433],
[72, "3^2xQ8",011, 702,  73, 145, 433],
[72,   "9xD8",011, 702, 145, 218, 433],
[72,   "9xQ8",011, 702,  73, 145, 218, 433],
[72, "2x6xS3",001, 762, 444],
[72,  "6x6.2",001, 762,  73, 444],
[72,  "12xS3",001, 762, 289, 444],
[72, "3x12.2",001, 762,  74, 289, 444],
[72,   "6xA4",001, 942, 438, 522],
[72,"2x(2^2x3).3",001, 942,  74, 438, 522],
[72,"2^2x3^2:2",001, 762, 444, 508],
[72,"2x(3^2x2).2",001, 762,  73, 444, 508],
[72,"4x3^2:2",001, 762, 289, 444, 508],
[72,"(4x3^2).2",000, 762,  74, 289, 444, 508],
[72,"2^2xD18",001, 762, 148, 452, 508],
[72, "2x18.2",001, 762,  73, 148, 452, 508],
[72,  "4xD18",001, 762, 148, 289, 452, 508],
[72,   "36.2",000, 762,  74, 148, 289, 452, 508],
[72,         ,001, 702, 433, 510],
[72,  "3xD24",001, 702, 145, 433, 510],
[72,"3xQ8+S3",001, 702,  73, 145, 433, 510],
[72,"Sl(2,3)x3",001, 942, 145, 217, 439, 523, 865],
[72,"(Q8x3).3",000, 942,  74, 145, 217, 439, 523, 865],
[72,   "3xS4",001, 747, 444, 513, 585, 867, 945],
[72, "2xS3^2",001, 702, 510, 938],
[72, "S3x6.2",001, 702, 145, 510, 938],
[72,"(6.2)Y(6.2)",000, 702,  73, 145, 510, 938],
[72,"2x3^2:4",001, 702,  90, 520, 586, 870, 938],
[72,"(2x3^2).4",000, 702,  90, 145, 520, 586, 870, 938],
[72,         ,000, 702, 433, 510, 578],
[72, "S3+D24",000, 702, 145, 433, 510, 578],
[72,"Q8+(3^2:2)",000, 702,  73, 145, 433, 510, 578],
[72,         ,000, 702, 218, 433, 514, 578],
[72,    "D72",000, 702, 145, 218, 433, 514, 578],
[72, "Q8+D18",000, 702,  73, 145, 218, 433, 514, 578],
[72,         ,000, 702, 433, 510, 938],
[72,         ,000, 702, 145, 433, 510, 938],
[72,         ,000, 702,  73, 145, 433, 510, 938],
[72,         ,000, 687,  90, 153, 580, 653, 941,1014,1299,1369],
[72,  "S3xA4",001, 747, 649, 867, 945],
[72,         ,000, 687,  81, 441, 583, 656, 943,1013,1299,1369],
[72,         ,000, 687,  81, 153, 441, 577, 652, 943,1016,1299,1369],
[72,         ,000, 747, 444, 507, 649, 867, 945],
[72,         ,000, 762, 148, 452, 508, 579, 651, 937,1011],
                 
[73,    "c73",110,  73],
                 
[74,    "c74",111, 113],
[74,    "D74",000, 113, 257],
                 
[75,   "15x5",111, 143],
[75,    "c75",111, 143, 151],
[75,  "5^2:3",000, 143, 321, 398],
                 
[76, "2^2x19",111, 859],
[76,    "c76",111, 859,  95],
[76,    "D76",001, 859, 397],
[76,   "38.2",000, 859,  95, 397],
                 
[77,    "c77",111,  95],
                 
[78,    "c78",111, 447],
[78,  "3xD26",001, 447, 401],
[78, "2x13:3",001, 447, 626],
[78,  "13xS3",001, 447, 325],
[78,   "13:6",000, 447, 401, 626],
[78,    "D78",000, 447, 325, 401],
                 
[79,    "c79",110,  79],
                 
[80,  "2^4x5",111,3113],
[80, "2^2x20",111,3113, 245],
[80,   "8x10",111,3113, 170, 245],
[80,  "4^2x5",111,3113, 100, 245],
[80,    "c80",111,3113, 100, 170, 245],
[80,  "10xD8",011,3113, 165, 485],
[80,  "10xQ8",011,3113,  85, 165, 485],
[80, "5xD8Y4",011,3113, 245, 485],
[80,         ,011,3113,  90, 485],
[80,"5x(2x4).2",011,3113,  90, 165, 485],
[80,         ,011,3113,  90, 245, 485],
[80,  "5xD16",011,3113, 175, 245, 490, 565],
[80, "5xQD16",011,3113, 170, 245, 490, 565],
[80,  "5xQ16",011,3113,  85, 175, 245, 490, 565],
[80,"2^3xD10",001,3758, 504],
[80,  "4xD20",001,3758, 321, 504],
[80,"2^2x10.2",001,3758,  81, 504],
[80, "4x10.2",001,3758,  84, 321, 504],
[80,  "8xD10",001,3758, 242, 321, 504],
[80, "2x20.2",001,3758,  82, 321, 504],
[80,   "40.2",000,3758,  84, 242, 321, 504],
[80,"2^2x5:4",001,3218, 100, 564, 972],
[80,  "4x5:4",001,3218, 100, 321, 564, 972],
[80, "2x10.4",001,3218, 100, 161, 564, 972],
[80,"4Y(10.4)",000,3218, 100, 161, 321, 564, 972],
[80,   "20.4",000,3218, 100, 162, 321, 564, 972],
[80,         ,001,3218, 481, 572],
[80,  "2xD40",001,3218, 161, 481, 572],
[80,"2xQ8+D10",001,3218,  81, 161, 481, 572],
[80,         ,000,3218,  82, 481, 572],
[80,         ,000,3218, 162, 481, 572],
[80,         ,000,3218,  81, 162, 481, 572],
[80,"(10.2)+Q8",000,3218,  82, 161, 481, 572],
[80,  "D40Y4",000,3218, 321, 481, 572],
[80,         ,000,3218,  82, 321, 481, 572],
[80,         ,000,3218, 162, 321, 481, 572],
[80, "D8xD10",001,3128, 241, 646, 961],
[80, "Q8xD10",001,3128, 161, 241, 646, 961],
[80,"(10.2)YD8",000,3128,  81, 241, 646, 961],
[80,"(10.2)YQ8",000,3128,  81, 161, 241, 646, 961],
[80,         ,000,3128,  90, 481, 642,1446],
[80,"(5:4)+Q8",000,3128,  90, 161, 481, 642,1446],
[80,         ,000,3128,  90, 241, 481, 642,1446],
[80,         ,000,3128,  90, 161, 241, 481, 642,1446],
[80,         ,000,3218, 163, 321, 482, 641, 972],
[80,         ,000,3218, 162, 321, 482, 641, 972],
[80,         ,000,3218,  81, 162, 321, 482, 641, 972],
[80,         ,000,3218,  81, 163, 321, 482, 641, 972],
[80,    "D80",000,3218, 163, 321, 482, 572, 641],
[80,         ,000,3218, 162, 321, 482, 572, 641],
[80,         ,000,3218,  81, 163, 321, 482, 572, 641],
[80,  "2^4:5",000,6998, 487, 572, 646, 723],
                 
[81,    "3^4",111, 255],
[81,  "3^2x9",111, 255, 244],
[81,   "27x3",111, 255, 165, 244],
[81,    "9^2",111, 255,  90, 244],
[81,    "c81",110, 255,  90, 165, 244],
[81,"3x3^3:3",011, 255, 406],
[81,   "3x9:3",011, 255,  82, 406],
[81,         ,010, 255,  84, 406],
[81,         ,010, 255,  84, 163, 406],
[81,"(3^2:3)Y9",010, 255, 244, 406],
[81,   "27:3",010, 255,  84, 244, 406],
[81,    "3$3",010, 255, 408, 487],
[81,         ,010, 255, 164, 408, 487],
[81,         ,010, 255, 163, 408, 487],
[81,         ,010, 255,  82, 164, 408, 487],
                 
[82,    "c82",111, 125],
[82,    "D82",000, 125, 285],
                 
[83,    "c83",110,  83],
                 
[84, "2^2x21",111,1183],
[84,    "c84",111,1183, 105],
[84,  "14xS3",001,1239, 434],
[84,  "7x6.2",001,1239,  91, 434],
[84,   "A4x7",001,1687, 427, 525],
[84,  "D14x6",001,1491, 450],
[84, "14.2x3",001,1491,  87, 450],
[84,"2^2x7:3",001,2002, 424],
[84,  "4x7:3",001,2002, 253, 424],
[84,  "2x7:6",001,1274, 514, 842],
[84,"(14.2):3",000,1274,  85, 514, 842],
[84,    "D84",001,1274, 434, 514],
[84,   "42.2",000,1274,  85, 434, 514],
[84, "S3xD14",001,1183, 511, 929],
[84,"A4+(7:3)",000,2002, 424, 505, 591],
                 
[85,    "c85",111, 107],
                 
[86,    "c86",111, 131],
[86,    "D86",000, 131, 299],
                 
[87,    "c87",111, 119],
                 
[88, "2^3x11",111,3779],
[88,   "2x44",111,3779, 187],
[88,    "c88",111,3779, 110, 187],
[88,  "11xD8",011,3779, 451],
[88,  "11xQ8",011,3779,  99, 187, 451],
[88,  "2xD44",001,5066, 476],
[88,  "4xD22",001,5066, 265, 476],
[88, "2x22.2",001,5066,  89, 476],
[88,   "44.2",000,5066,  90, 265, 476],
[88,         ,000,3878, 441, 546],
[88,    "D88",000,3878, 177, 441, 546],
[88, "Q8+D22",000,3878,  89, 177, 441, 546],
                 
[89,    "c89",110,  89],
                 
[90,   "3x30",111, 563],
[90,    "c90",111, 563, 185],
[90,  "15xS3",001, 563, 465],
[90,"5x3^2:2",001, 563, 465, 545],
[90,  "5xD18",001, 563, 185, 475, 545],
[90,"3^2xD10",001, 633, 477],
[90,  "9xD10",001, 633, 271, 477],
[90,  "3xD30",001, 573, 465, 549],
[90,"(3^2x5):2",000, 563, 465, 545, 633],
[90,    "D90",000, 563, 185, 475, 545, 633],
                 
[91,    "c91",111, 111],
                 
[92, "2^2x23",111,1223],
[92,    "c92",111,1223, 115],
[92,    "D92",001,1223, 481],
[92,   "46.2",000,1223, 115, 481],
                 
[93,    "c93",111, 127],
[93,   "31:3",000, 127, 303],
                 
[94,    "c94",111, 143],
[94,    "D94",000, 143, 327],
                 
[95,    "c95",111, 119],
                 
[96,  "2^5x3",111,2731],
[96, "2^3x12",111,2731, 387],
[96, "2^2x24",111,2731, 294, 387],
[96,  "6x4^2",111,2731, 204, 387],
[96,   "2x48",111,2731, 204, 294, 387],
[96,   "4x24",111,2731, 120, 294, 387],
[96,    "c96",111,2731, 120, 204, 294, 387],
[96, "96.01a",001,2731,1057],
[96, "96.01b",001,3754, 961,1059],
[96, "96.01c",001,3754, 772, 876, 961,1059],
[96, "96.02a",001,2731, 120,3361],
[96, "96.02b",001,2731, 120,1057],
[96, "96.02c",001,3754, 481, 772, 876],
[96, "96.03a",001,2731, 120, 294,3361],
[96, "96.03b",001,2731, 120, 294,2209],
[96, "96.03c",001,3754, 292, 481, 778, 869, 968,1060],
[96, "96.04a",001,2731, 120, 204,3361],
[96, "96.04b",001,2731, 120, 204,1057],
[96, "96.04c",001,3754, 386, 481, 680, 792],
[96, "96.05a",001,2731, 120, 204, 387,2785],
[96, "96.05b",001,2731, 120, 204, 387,1057],
[96, "96.06a",001,2731, 120, 204, 294,3361],
[96, "96.06b",001,2731, 120, 204, 294,1057],
[96, "96.07a",000,2731, 120, 204, 294, 387,1057],
[96, "96.008",011,2731, 195, 675],
[96, "96.08a",001,2731, 195, 675,1057],
[96, "96.08b",001,2731, 195, 675,2209],
[96, "96.08c",001,2731, 195, 675,1633],
[96, "96.08d",001,3754, 289, 866, 966,1345],
[96, "96.009",011,2731,  99, 195, 675],
[96, "96.09a",001,2731,  99, 195, 675,1057],
[96, "96.09b",001,2731,  99, 195, 675,2209],
[96, "96.09c",001,3754, 193, 289, 866, 966,1345],
[96, "96.09d",001,3754, 193, 289, 680, 792,1345],
[96, "96.09e",000,3754, 193, 289, 680, 792, 866, 966,1345],
[96, "96.010",011,3754, 481,1345],
[96, "96.10a",001,2731, 387, 675,1633],
[96, "96.10b",001,2731, 387, 675,2209],
[96, "96.10c",001,2731, 387, 675,1633,2785],
[96, "96.10d",001,2731, 387, 675,1057,1633,2785],
[96, "96.10e",001,3754, 481, 683, 792,1345],
[96, "96.011",011,2731, 102, 675],
[96, "96.11a",001,2731, 102, 675,1633],
[96, "96.11b",001,2731, 102, 675,2209],
[96, "96.11c",001,2731, 102, 675,1057],
[96, "96.012",011,2731, 102, 195, 675],
[96, "96.12a",001,2731, 102, 195, 675,1057],
[96, "96.12b",001,2731, 102, 195, 675,2209],
[96, "96.12c",001,2731, 102, 195, 675,1633],
[96, "96.013",011,2731, 102, 387, 675],
[96, "96.13a",001,2731, 102, 387, 675,1633],
[96, "96.13b",001,2731, 102, 387, 675,2209],
[96, "96.13c",001,2731, 102, 387, 675,1057],
[96, "96.014",011,2731, 195, 294, 675],
[96, "96.14a",001,2731, 195, 294, 675,1633],
[96, "96.14b",001,2731, 195, 294, 675,1057],
[96, "96.14c",001,2731, 195, 294, 675,2209],
[96, "96.14d",000,2731, 195, 294, 675,1057,2209],
[96, "96.14e",000,2731, 195, 294, 675,1633,2209],
[96, "96.015",011,2731,  99, 195, 294, 675],
[96, "96.15a",001,2731,  99, 195, 294, 675,1057],
[96, "96.15b",001,2731,  99, 195, 294, 675,2209],
[96, "96.15c",000,2731,  99, 195, 294, 675,1057,2209],
[96, "96.15d",001,3754, 193, 289, 386, 680, 792,1345],
[96, "96.016",011,2731, 108, 387, 675],
[96, "96.16a",000,2731, 108, 387, 675,1057],
[96, "96.16b",000,2731, 108, 387, 675,1633],
[96, "96.16c",000,2731, 108, 387, 675,2785],
[96, "96.16d",000,2731, 108, 387, 675,1633,2785],
[96, "96.017",011,2731, 294, 387, 675],
[96, "96.17a",000,2731, 294, 387, 675,1057],
[96, "96.17b",000,2731, 294, 387, 675,1633,2209],
[96, "96.17c",000,2731, 294, 387, 675,2209],
[96, "96.17d",000,3754, 386, 481, 682, 793,1345],
[96, "96.018",011,2731, 108, 198, 675],
[96, "96.18a",000,2731, 108, 198, 675,1057],
[96, "96.18b",000,3754, 196, 290, 686, 795, 867, 966,1345],
[96, "96.019",011,2731, 102, 204, 387, 675],
[96, "96.19a",000,2731, 102, 204, 387, 675,1633],
[96, "96.19b",000,2731, 102, 204, 387, 675,1057],
[96, "96.020",011,2731, 108, 294, 675],
[96, "96.20a",000,2731, 108, 294, 675,1633],
[96, "96.20b",000,2731, 108, 294, 675,1057],
[96, "96.021",011,2731, 108, 195, 294, 675],
[96, "96.21a",000,2731, 108, 195, 294, 675,1057],
[96, "96.21b",000,2731, 108, 195, 294, 675,1633],
[96, "96.022",011,2731, 108, 294, 387, 675],
[96, "96.22a",000,2731, 108, 294, 387, 675,1633],
[96, "96.22b",000,2731, 108, 294, 387, 675,1057],
[96, "96.023",011,2731, 207, 291, 684, 771],
[96, "96.23a",001,2731, 207, 291, 684, 771,1057],
[96, "96.23b",001,2731, 207, 291, 684, 771,2785],
[96, "96.23c",001,2731, 207, 291, 684, 771,1633],
[96, "96.024",011,2731, 204, 291, 684, 771],
[96, "96.24a",001,2731, 204, 291, 684, 771,1057],
[96, "96.24b",001,2731, 204, 291, 684, 771,2785],
[96, "96.24c",001,2731, 204, 291, 684, 771,1633],
[96, "96.24d",001,2731, 204, 291, 684, 771,1057,1633],
[96, "96.025",011,2731,  99, 207, 291, 684, 771],
[96, "96.25a",001,2731,  99, 207, 291, 684, 771,2785],
[96, "96.25b",001,2731,  99, 207, 291, 684, 771,1057],
[96, "96.25c",001,2731,  99, 207, 291, 684, 771,1633],
[96, "96.026",011,2731, 207, 291, 387, 684, 771],
[96, "96.26a",000,2731, 207, 291, 387, 684, 771,2785],
[96, "96.26b",000,2731, 207, 291, 387, 684, 771,1057],
[96, "96.26c",000,2731, 207, 291, 387, 684, 771,1057,2785],
[96, "96.26d",000,2731, 207, 291, 387, 684, 771,1633,2785],
[96, "96.26e",000,2731, 207, 291, 387, 684, 771,1633],
[96, "96.027",011,2731, 213, 291, 684, 771],
[96, "96.27a",000,2731, 213, 291, 684, 771,1057],
[96, "96.27b",000,2731, 213, 291, 684, 771,1633],
[96, "96.27c",000,2731, 213, 291, 684, 771,1057,1633],
[96, "96.028",011,2731,  99, 213, 291, 684, 771],
[96, "96.28a",000,2731,  99, 213, 291, 684, 771,1057],
[96, "96.28b",000,2731,  99, 213, 291, 684, 771,1633],
[96, "96.28c",000,2731,  99, 213, 291, 684, 771,1057,1633],
[96, "96.029",011,2731, 102, 207, 291, 684, 771],
[96, "96.29a",000,2731, 102, 207, 291, 684, 771,1057],
[96, "96.29b",000,2731, 102, 207, 291, 684, 771,1633],
[96, "96.030",011,2731, 102, 204, 291, 684, 771],
[96, "96.30a",000,2731, 102, 204, 291, 684, 771,1057],
[96, "96.30b",000,2731, 102, 204, 291, 684, 771,1633],
[96, "96.031",011,2731, 213, 291, 387, 684, 771],
[96, "96.31a",000,2731, 213, 291, 387, 684, 771,1057,1633],
[96, "96.31b",000,2731, 213, 291, 387, 684, 771,1633],
[96, "96.31c",000,2731, 213, 291, 387, 684, 771,1057],
[96, "96.032",011,2731, 102, 207, 291, 387, 684, 771],
[96, "96.32a",000,2731, 102, 207, 291, 387, 684, 771,1057],
[96, "96.32b",000,2731, 102, 207, 291, 387, 684, 771,1633],
[96, "96.033",011,2731, 678, 771],
[96, "96.33a",000,2731, 678, 771,1633],
[96, "96.33b",000,2731, 678, 771,1057,2209],
[96, "96.33c",000,2731, 678, 771,1057],
[96, "96.33d",000,3754, 772, 876, 961,1059,1346,1441],
[96, "96.034",011,2731, 198, 291, 678, 771],
[96, "96.34a",000,2731, 198, 291, 678, 771,1633],
[96, "96.34b",000,2731, 198, 291, 678, 771,1057],
[96, "96.34c",000,3754, 290, 385, 780, 872, 963,1058,1346,1441],
[96, "96.035",011,2731,  99, 198, 291, 678, 771],
[96, "96.35b",000,2731,  99, 198, 291, 678, 771,1633],
[96, "96.35c",000,2731,  99, 198, 291, 678, 771,2209],
[96, "96.036",011,2731, 291, 678, 771],
[96, "96.36a",000,2731, 291, 678, 771,1057],
[96, "96.36b",000,2731, 291, 678, 771,1633],
[96, "96.36c",000,2731, 291, 678, 771,1057,1633],
[96, "96.36d",000,2731, 291, 678, 771,1633,2209],
[96, "96.36e",000,2731, 291, 678, 771,2209],
[96, "96.037",011,2731,  99, 291, 678, 771],
[96, "96.37a",000,2731,  99, 291, 678, 771,1057],
[96, "96.37b",000,2731,  99, 291, 678, 771,1633],
[96, "96.37c",000,2731,  99, 291, 678, 771,1057,1633],
[96, "96.37d",000,2731,  99, 291, 678, 771,2209],
[96, "96.37e",000,2731,  99, 291, 678, 771,1633,2209],
[96, "96.038",011,2731, 195, 678, 771],
[96, "96.38a",000,2731, 195, 678, 771,1057],
[96, "96.38b",000,2731, 195, 678, 771,2209],
[96, "96.38c",000,2731, 195, 678, 771,1057,2209],
[96, "96.38d",000,2731, 195, 678, 771,1633],
[96, "96.38e",000,2731, 195, 678, 771,1057,1633],
[96, "96.039",011,2731, 201, 291, 678, 771],
[96, "96.39a",000,2731, 201, 291, 678, 771,1633],
[96, "96.39b",000,2731, 201, 291, 678, 771,1057],
[96, "96.39c",000,2731, 201, 291, 678, 771,1057,1633],
[96, "96.39d",000,2731, 201, 291, 678, 771,2209],
[96, "96.040",011,2731, 102, 201, 291, 678, 771],
[96, "96.40a",000,2731, 102, 201, 291, 678, 771,1057],
[96, "96.40b",000,2731, 102, 201, 291, 678, 771,1633],
[96, "96.40c",000,2731, 102, 201, 291, 678, 771,2209],
[96, "96.041",011,2731, 201, 294, 678, 771],
[96, "96.41a",000,2731, 201, 294, 678, 771,1057],
[96, "96.41b",000,2731, 201, 294, 678, 771,1057,1633],
[96, "96.41c",000,2731, 201, 294, 678, 771,2209],
[96, "96.41d",000,3754, 291, 386, 773, 878, 961,1059,1346,1441],
[96, "96.042",011,2731,  99, 195, 291, 387, 867,1347],
[96, "96.42a",000,2731,  99, 195, 291, 387, 867,1057,1347],
[96, "96.42b",000,2731,  99, 195, 291, 387, 867,1057,1347,1633],
[96, "96.42c",000,3754, 193, 289, 385, 481, 772, 876,1537,2017],
[96, "96.42d",000,3754, 193, 289, 385, 481, 674, 772, 876, 978,1537,2017],
[96, "96.043",011,2731, 195, 291, 387, 867,1347],
[96, "96.43a",000,2731, 195, 291, 387, 867,1347,1633],
[96, "96.43b",000,2731, 195, 291, 387, 867,1057,1347,1633],
[96, "96.43c",000,3754, 289, 385, 481, 772, 876,1537,2017],
[96, "96.044",011,2731, 201, 387, 678, 867,1347],
[96, "96.44a",000,2731, 201, 387, 678, 867,1057,1347],
[96, "96.44b",000,2731, 201, 387, 678, 867,1347,2209],
[96, "96.44c",000,2731, 201, 387, 678, 867,1057,1347,2209],
[96, "96.44d",000,2731, 201, 387, 678, 867,1347,1633],
[96, "96.44e",000,2731, 201, 387, 678, 867,1057,1347,1633],
[96, "96.045",011,2731,  99, 201, 387, 678, 867,1347],
[96, "96.45a",000,2731,  99, 201, 387, 678, 867,1057,1347],
[96, "96.45b",000,2731,  99, 201, 387, 678, 867,1057,1347,2209],
[96, "96.45c",000,2731,  99, 201, 387, 678, 867,1347,2209],
[96, "96.45d",000,2731,  99, 201, 387, 678, 867,1057,1347,1633],
[96, "96.45e",000,2731,  99, 201, 387, 678, 867,1347,1633],
[96, "96.046",011,2731, 108, 678, 867,1347],
[96, "96.46a",000,2731, 108, 678, 867,1347,1633],
[96, "96.46b",000,2731, 108, 678, 867,1057,1347],
[96, "96.047",011,2731, 108, 291, 678, 867,1347],
[96, "96.47a",000,2731, 108, 291, 678, 867,1347,1633],
[96, "96.47b",000,2731, 108, 291, 678, 867,1057,1347],
[96, "96.048",011,2731, 108, 195, 291, 678, 867,1347],
[96, "96.48a",000,2731, 108, 195, 291, 678, 867,1347,1633],
[96, "96.48b",000,2731, 108, 195, 291, 678, 867,1057,1347],
[96, "96.049",011,2731, 210, 297, 387, 684, 774, 867],
[96, "96.49a",000,2731, 210, 297, 387, 684, 774, 867,1057],
[96, "96.49b",000,2731, 210, 297, 387, 684, 774, 867,1633],
[96, "96.050",011,2731, 213, 297, 387, 684, 774, 867],
[96, "96.50a",000,2731, 213, 297, 387, 684, 774, 867,1057],
[96, "96.50b",000,2731, 213, 297, 387, 684, 774, 867,1633],
[96, "96.50c",000,2731, 213, 297, 387, 684, 774, 867,1057,1633],
[96, "96.051",011,2731,  99, 210, 297, 387, 684, 774, 867],
[96, "96.51a",000,2731,  99, 210, 297, 387, 684, 774, 867,1057],
[96, "96.51b",000,2731,  99, 210, 297, 387, 684, 774, 867,1633],
[96, "96.052",001,2986, 385, 481, 688, 867, 961,1442,1543,2689],
[96, "96.053",001,2986,  98, 290, 386, 688, 774, 866,1348,1454,2018],
[96, "96.054",000,2986,  99, 290, 386, 688, 774, 866,1348,1454,2018],
[96, "96.055",000,2986, 290, 386, 688, 774, 866,1058,1348,1454,2018],
[96, "96.056",000,2986, 481, 688, 774, 865,1351,1453,2017],
[96, "96.057",000,2986,  98, 481, 688, 774, 865,1351,1453,2017],
[96, "96.058",000,2986, 481, 688, 775, 961,1351,1453,2017],
[96, "96.059",000,2986,  97, 481, 688, 775, 961,1351,1453,2017],
[96, "96.060",000,2986, 292, 481, 688, 774, 865,1350,1441,1551,1637],
[96, "96.061",001,2986, 481, 688, 772,1348,1452],
[96, "96.062",000,2986,  98, 481, 688, 772,1348,1452],
[96, "96.063",000,2986, 481, 688, 772, 961,1348,1452],
[96, "96.064",000,2986,  97, 481, 688, 772, 961,1348,1452],
[96, "96.065",001,2986, 688, 870, 966,1446,1540],
[96, "96.066",001,2986, 100, 688, 963,1059,1539,1634],
[96, "96.067",000,2986, 688, 780, 876, 963,1059,1539,1634],
[96, "96.068",000,2986, 688, 780, 876, 963,1059,1356,1448,1539,1634],
[96, "96.35a",000,2731,  99, 198, 291, 678, 771,1057 ],

[97,    "c97",110,  97],
                 
[98,   "14x7",111, 191],
[98,    "c98",111, 191, 197],
[98,    "D98",000, 191, 197, 433, 495],
[98,  "7xD14",001, 191, 495],
[98,  "7^2:2",000, 191, 427, 495],
                 
[99,   "33x3",111, 479],
[99,    "c99",111, 479, 110],
                 
[100,  "10^2",111, 539],
[100,  "50x2",111, 539, 301],
[100,  "5x20",111, 539, 125],
[100,  "c100",111, 539, 125, 301],
[100,"10xD10",001, 629, 530],
[100,"5x10.2",001, 629, 105, 530],
[100, "5x5:4",001, 539, 125, 605,1015],
[100,"2x5^2:2",001, 644, 530, 606],
[100,"(5^2x2).2",000, 644, 101, 530, 606],
[100,  "D100",001, 644, 202, 538, 606],
[100,  "50.2",000, 644, 101, 202, 538, 606],
[100, "D10^2",001, 539, 615,1103],
[100,        ,000, 539, 125, 605, 701,1015,1103],
[100,        ,000, 539, 125, 610, 701,1015,1103],
[100,        ,000, 539, 125, 615, 701,1103],
[100,  "25:4",000, 539, 125, 301, 606, 701,1019,1103]];


#############################################################################
##
#F  AGGroup( <nr> ) . . . . . . . . . . . create a ag-group from library list
##
##  'AGGroup' creates the ag-group with index <nr> in the list 'AGTable'.
##
AGGroup := function ( nr )
    local   gens,  rels,  g,  j,  l,  ind,  d,  c,  i,  f,  o,  p;

    f := FactorsInt( AGTable[nr][1] ); 
    i := Maximum( f ) + 1;

    # length of composition series
    l := Length( f );
    
    # indices of composition series
    ind  := CoefficientsInt( [ 1 .. l ] * 0 + i, AGTable[nr][4] );
    g    := ["a","b","c","d","e","f"];
    gens := [];
    rels := [];
    
    # construct list of generators and of trivial power-relations
    for i in Reversed([1..l])  do
        gens[i] := AbstractGenerator(g[i]);
        rels[i] := gens[i]^ind[i];
    od;
    
    # fetch non-canonical relations
    for i in [5..Length(AGTable[nr])]  do
        d := CoefficientsInt( [l+1,l,AGTable[nr][1]], AGTable[nr][i] );
        
        # fetch the value of a nontrivial relation
        c := CoefficientsInt( ind, d[3] );
        g := gens[1]^0;
        for j in [1..l]  do 
            if c[j]> 0  then 
                g := g*gens[j]^c[j];
            fi;
        od;
        
        # this relation is a power relation
        if d[1] = 0  then 
            rels[d[2]] := gens[d[2]]^ind[d[2]]/g;
            
            # this relation is a commutator relation
        else
            Add(rels,Comm(gens[d[2]+1],gens[d[1]])/g);
        fi;
    od;
    g := AgGroupFpGroup( rec(generators:=gens,relations:=rels) );
    if IsBound(AGTable[nr][2])  then
        g.name := AGTable[nr][2];
    else
        o := AGTable[nr][1];
        p := 1;
        repeat 
            p := p+1; 
        until AGTable[nr-p][1] <> o;
        g.name := Concatenation( "grp_", String(o), "_", String(p) );
    fi;
    return g;
end;


#############################################################################
##
#F  SolvableGroup( <ord>, <nr> )  . . . . . . . . .  extract a solvable group
##
##  'SolvableGroup( <ord>, <nr> )' returns the <nr>-th solvable group of size
##  <ord>.  'SolvableGroup( <name> )'  returns the  solvable group with  name
##  string <name> if exists, otherwise 'false'.
##
SolvableGroup := function( arg )
    local   i,  p,  ord,  nr,  name,  digits;

    # SolvableGroup( <name> )
    if Length( arg ) = 1 and IsString( arg[1] )  then

        # <name> = "grp_1234"
        name   := arg[1];
        digits := "0123456789";
        if 3 < Length( name ) and name{[1..4]} = "grp_"  then
            ord := 0;
            p   := 5;
            i   := Position( digits, name[p] );
            while i <> false  do
                ord := 10 * ord + i -1;
                p   := p+1;
                i   := Position( digits, name[p] );
            od;
            nr := 0;
            p  := p+1;
            i  := Position( digits, name[p] );
            while i <> false  do
                nr := 10 * nr + i-1;
                p  := p+1;
                if p > Length(name)  then
                    i := false;
                else
                    i := Position( digits, name[p] );
                fi;
            od;
            return SolvableGroup( ord, nr );
        fi;
        
        # <name> is a "real" name
        for p in AGTable  do
            if IsBound(p[2]) and p[2] = name  then
                return AGGroup( Position( AGTable, p ) );
            fi;
        od;

        # no group with this name in the library
        return false;

    # SolvableGroup( <ord>, <nr> )
    elif Length( arg ) = 2 then
        ord := arg[1];
        nr  := arg[2];
        if not ( IsInt(ord) and IsInt(nr) and 2<=ord and ord<=100 )  then
            Error( "<ord> and <nr> must be integers, 2 <= <ord> <= 100" );
        fi;
        p := 0;
        repeat
            p := p+1;
        until AGTable[p][1] = ord;
        p := p + nr - 1;
        if IsBound(AGTable[p]) and AGTable[p][1] = ord  then
            return AGGroup(p);
        fi;
        Error( "there are only ", Number(AGTable,x->x[1]=ord),
               " solvable groups of size ", ord );
    else
        Error( "usage: SolvableGroup( <name> ) or",
               " SolvableGroup( <ord>, <nr> )" );
    fi;

end;


#############################################################################
##
#F  IsNontrivialDirectProduct() . . . . . . . . . . . . . . . . . . . . dummy
##
##  'IsNontrivialDirectProduct' is just a dummy to be used  in  the  call  of
##  AllSolvableGroups / OneSolvableGroup.  There  this  information  is  read
##  from AGTable.  It is not intended to write such a function.
##
IsNontrivialDirectProduct := function(arg)
    Error("IsNontrivialDirectProduct: function is not implemented,\n",
          "it is just a dummy to be used in the call of\n",
          "AllSolvableGroups and OneSolvableGroup" );
end;


#############################################################################
##
#F  AllSolvableGroups( <fun>, <res>, ...) )
##
##  'AllSolvableGroups' returns a list of all solvable groups that  have  the
##  properties given as arguments.
##
##
AllSolvableGroups := function(arg)
    local   pSize, allgrps, tmp, flag, i, sizes, tnr, tAbel, tNil,
            tDir, vAbel, vNil, vDir;
    
    # the size must be among the properties
    # pSize:=Position(arg,Size);
    pSize:=0; tAbel:=false; tNil:=false; tDir:=false;
    for i in [1..Length(arg)] do
        if arg[i]=Size then pSize:=i; fi;
        if arg[i]=IsAbelian then
            tAbel:=true; vAbel:=arg[i+1];
            if IsList(vAbel) then vAbel:=vAbel[1]; fi;
            arg[i]:=x->true; arg[i+1]:=true;
        fi;
        if arg[i]=IsNilpotent then
            tNil:=true; vNil:=arg[i+1];
            if IsList(vNil) then vNil:=vNil[1]; fi;
            arg[i]:=x->true; arg[i+1]:=true;
        fi;
        if arg[i]=IsNontrivialDirectProduct then
            tDir:=true; vDir:=arg[i+1];
            if IsList(vDir) then vDir:=vDir[1]; fi;
            arg[i]:=x->true; arg[i+1]:=true;
        fi;
        if arg[i] in [true,false] then arg[i]:=[arg[i]]; fi;
        if IsInt(arg[i]) then arg[i]:=[arg[i]]; fi;
        od;
    if pSize=0 then
        Print("#W  AllSolvableGroups:",
            "size automatically restricted to [2..100]\n");
        sizes:=[2..100];
    else
        sizes:=arg[pSize+1]; arg[pSize]:=x->true; arg[pSize+1]:=[true];
    fi;
    # initialize
    allgrps:=[];
    for i in [1..Length(AGTable)] do
        flag:=AGTable[i][1] in sizes;
        if flag and tAbel then
            flag:=(QuoInt(AGTable[i][3],100) mod 10=1)=vAbel;
        fi;
        if flag and tNil then
            flag:=(QuoInt(AGTable[i][3],10) mod 10=1)=vNil;
        fi;
        if flag and tDir then flag:=(AGTable[i][3] mod 10=1)=vDir; fi;
        if flag then tmp:=AGGroup(i); fi;
        tnr:=1;
        while flag=true and tnr<Length(arg) do
            flag:=arg[tnr](tmp) in arg[tnr+1]; tnr:=tnr+2;
        od;
        if flag then Add(allgrps,tmp); fi;
    od;
    return allgrps;
end;


#############################################################################
##
#F  OneSolvableGroup( <fun>, <res>, ... )
##
##  'AllSolvableGroup' returns one solvable  group  that  has  the properties
##  given as arguments. If no such group is found 'false' is returned.
##
##
OneSolvableGroup := function(arg)

    local   pSize, tmp, flag, i, sizes, tnr, tAbel, tNil,
            tDir, vAbel, vNil, vDir;
    
    # the size must be among the properties
    # pSize:=Position(arg,Size);
    pSize:=0; tAbel:=false; tNil:=false; tDir:=false;
    for i in [1..Length(arg)] do
        if arg[i]=Size then pSize:=i; fi;
        if arg[i]=IsAbelian then
            tAbel:=true; vAbel:=arg[i+1];
            if IsList(vAbel) then vAbel:=vAbel[1]; fi;
            arg[i]:=x->true; arg[i+1]:=true;
        fi;
        if arg[i]=IsNilpotent then
            tNil:=true; vNil:=arg[i+1];
            if IsList(vNil) then vNil:=vNil[1]; fi;
            arg[i]:=x->true; arg[i+1]:=true;
        fi;
        if arg[i]=IsNontrivialDirectProduct then
            tDir:=true; vDir:=arg[i+1];
            if IsList(vDir) then vDir:=vDir[1]; fi;
            arg[i]:=x->true; arg[i+1]:=true;
        fi;
        if arg[i] in [true,false] then arg[i]:=[arg[i]]; fi;
        if IsInt(arg[i]) then arg[i]:=[arg[i]]; fi;
    od;
    if pSize=0 then
        Print("#W  AllSolvableGroups:",
            "size automatically restricted to [2..100]\n");
        sizes:=[2..100];
    else
        sizes:=arg[pSize+1]; arg[pSize]:=x->true; arg[pSize+1]:=[true];
    fi;
    for i in [1..Length(AGTable)] do
        flag:=AGTable[i][1] in sizes;
        if flag and tAbel then
            flag:=(QuoInt(AGTable[i][3],100) mod 10=1)=vAbel;
        fi;
        if flag and tNil then
            flag:=(QuoInt(AGTable[i][3],10) mod 10=1)=vNil;
        fi;
        if flag and tDir then flag:=(AGTable[i][3] mod 10=1)=vDir; fi;
        if flag then tmp:=AGGroup(i); fi;
        tnr:=1;
        while flag=true and tnr<Length(arg) do
            flag:=arg[tnr](tmp) in arg[tnr+1]; tnr:=tnr+2;
        od;
        if flag then return tmp; fi;
        od;
    return false;
end;



